/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ejb;

import entidades.Usuario;
import entidades.InformacionUsuario;
import entidades.Grupo;
import entidades.IdGrupoType;
import javax.ejb.Stateless;
import javax.persistence.PersistenceContext;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.List;
import java.util.ArrayList;
import javax.ejb.EJB;
import javax.ejb.TransactionAttributeType;

/**
 *
 * @author REX
 */
@Stateless
public class InformacionUsuarioEJB {
    @EJB
    private UsuarioEJB usuarioEJB;
    @PersistenceContext(unitName = "inscripcionesPU")
    private EntityManager em;

    public InformacionUsuario create(InformacionUsuario informacionUsuario){
        Query query = em.createNamedQuery("Usuario.findByIdUsuario");
        query.setParameter("idUsuario",informacionUsuario.getIdUsuario());
        Integer resultados = query.getResultList().size();
        if(resultados>0){
            return null;
        }
        em.persist(informacionUsuario);
      
        return informacionUsuario;
    }
    public InformacionUsuario edit(InformacionUsuario informacionUsuario){
        System.out.print(informacionUsuario.getEmailUsuario());
        System.out.print(informacionUsuario.getNombreUsuario());
        return em.merge(informacionUsuario);
    }
    public InformacionUsuario findInformacionUsuario(String id){
        return em.find(InformacionUsuario.class,id);
    }
    public boolean isAdministrador(Usuario usuario){
        if(usuario.getGrupos()==null){
            usuario = usuarioEJB.findUsuario(usuario.getIdUsuario());
        }
        for(Grupo gp:usuario.getGrupos()){
            if(gp.getGrupoPK().getIdGrupo()==IdGrupoType.ADMINISTRADOR){
                return true;
            }
        }
        return false;
    }

   
   
}
